﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Entities;
using BLL;

namespace QLTB_CTK34
{
	public partial class FrmCapNhatLTB : Form
	{
		public FrmCapNhatLTB(int  maloitb)
		{
            InitializeComponent();
            tbltb = QLTBLoiThietBi.FindByID(maloitb);
            MaLoiTB = maloitb;
			txtMaNG.Text = MyAccount.account.MaTK;
            this.MaximizeBox = false;
		}
        public FrmCapNhatLTB(ThongBaoLoiThietBi _tbltb)
        {
            InitializeComponent();
            tbltb = _tbltb;
            this.MaximizeBox = false;

        }
		public ThongBaoLoiThietBi tbltb;
		/// <summary>
		/// Khi click vào button cập nhật thì kết quả sẽ hiển thị lên datagridview của form cập nhật lỗi thiết bị
		/// </summary>
		private void btnCapNhatLoi_Click(object sender, EventArgs e)
		{
            tbltb.MaNguoiGui = txtMaNG.Text;
            tbltb.MaTB = cbbMaTB.Text;
            tbltb.LoaiTB = cbbLoaiTB.Text;
            tbltb.GhiChu = txtGhiChu.Text;
            tbltb.NgayGui = dateTimePicker1.Value;
            tbltb.NoiDungLoi = rtxtNoiDungLoi.Text;
            QLTBLoiThietBi.Update(tbltb);
			update_chitietloimt();
            ThietBi tb = QLThietBi.FindByID(cbbMaTB.Text);
            tb.TinhTrang = cbbTinhTrang.Text;
            QLThietBi.Update(tb);
			QLNhatKy.ThemNhatKy("Cập nhật lỗi thiết bị");
			DialogResult = DialogResult.OK;
			
		}
        void update_chitietloimt()
        {
            foreach (DataGridViewRow item in dgvDSLoiMayTinh.SelectedRows)
            {
                ThongBaoLoiMayTinh tblmt = new ThongBaoLoiMayTinh();
                tblmt.MaLoiMT = int.Parse(item.Cells["MaLoiMT"].Value.ToString());
                tblmt.TenPhanBiLoi = item.Cells["TenPhanBiLoi"].Value.ToString();
                tblmt.ChiTietLoi = item.Cells["ChiTietLoi"].Value.ToString();
                QLTBLoiMayTinh.Update(tblmt);
                
            }
        }

		int MaLoiTB;
		/// <summary>
		/// Load lỗi thiết bị khi muốn cập nhật bất kỳ lỗi nào
		/// </summary>
		private void FrmCapNhatLTB_Load(object sender, EventArgs e)
		{
			txtMaNG.Text = tbltb.MaNguoiGui;
			cbbMaTB.Text = tbltb.MaTB;
			cbbLoaiTB.Text = tbltb.LoaiTB;
			txtGhiChu.Text = tbltb.GhiChu;
			txtGhiChu.Enabled = cbbLoaiTB.Text.ToString().Trim().ToLower() == "máy tính" ? false : true;
			dgvDSLoiMayTinh.DataSource = QLTBLoiMayTinh.FindByCondition(x=>x.MaLoiTB==MaLoiTB);
			dateTimePicker1.Value = tbltb.NgayGui.Value;
			rtxtNoiDungLoi.Text = tbltb.NoiDungLoi;
            LoadDsLoiMayTinh();
            for (int i = 0; i < cbbTinhTrang.Items.Count; i++)
            {
                if (cbbTinhTrang.Items[i].ToString().Trim().ToLower() == tbltb.ThietBi.TinhTrang.Trim().ToLower())
                {
                    cbbTinhTrang.Text = cbbTinhTrang.Items[i].ToString();
                }
            }
		}
		/// <summary>
		/// Thoát form cập nhật lỗi thiết bị
		/// </summary>
		private void btnHuy_Click(object sender, EventArgs e)
		{
			Close();
		}
        /// <summary>
        /// load ds lỗi máy tính nếu loại thiết bị= máy tính,ngược lại cho groupbox ds loi may tinh ẩn đi
        /// </summary>
        void LoadDsLoiMayTinh()
        {
            if (cbbLoaiTB.Text.ToLower() != "máy tính".ToLower())
            {
                grbChiTietLoiMT.Visible = false;
                this.Size = new Size(629, 308);
                btnCapNhatLoi.Location = new Point(btnCapNhatLoi.Location.X, 558 - 340);
                btnHuy.Location = new Point(btnHuy.Location.X, 558 - 340);
            }
            else
            {
                dgvDSLoiMayTinh.DataSource = QLTBLoiMayTinh.FindByCondition(x => x.MaLoiTB == tbltb.MaLoiTB);
            }
        }
        private void dgvDSLoiMayTinh_DoubleClick(object sender, EventArgs e)
        {
            if (dgvDSLoiMayTinh.SelectedRows.Count > 0)
            {
                sửaLõiMáyTínhToolStripMenuItem.PerformClick();
            }
        }

        private void xóaLỗiMáyTínhToolStripMenuItem_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row_selected in dgvDSLoiMayTinh.SelectedRows)
            {
                var maloimt = int.Parse(row_selected.Cells["MaLoiMT"].Value.ToString());
                var kq=QLThongBaoLoiMayTinh.DeleteByID(maloimt);
                if (!kq.Success)
                {
                    kq.Show();
                }
                LoadDsLoiMayTinh();
            }
        }
        private void thêmLỗiMáyTínhToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmLoiMT frmLmt = new FrmLoiMT();
            if (frmLmt.ShowDialog() == DialogResult.OK)
            {
                frmLmt.tblmt.MaLoiTB = tbltb.MaLoiTB;
                QLThongBaoLoiMayTinh.Insert(frmLmt.tblmt).Show();
                LoadDsLoiMayTinh();
                Generic.SelectDataGridviewRowTheoMa(dgvDSLoiMayTinh, "MaLoiMT", frmLmt.tblmt.MaLoiMT);
            }
        }
        private void sửaLõiMáyTínhToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dgvDSLoiMayTinh.SelectedRows.Count > 0)
            {

                //lấy lỗi máy tính từ row được chọn trên datagridview ds lỗi máy tính
                ThongBaoLoiMayTinh tblmt = new ThongBaoLoiMayTinh();
                tblmt.MaLoiMT = int.Parse(dgvDSLoiMayTinh.SelectedRows[0].Cells["MaLoiMT"].Value.ToString());
                tblmt.MaLoiTB = tbltb.MaLoiTB;
                tblmt.TenPhanBiLoi = dgvDSLoiMayTinh.SelectedRows[0].Cells["TenPhanBiLoi"].Value.ToString();
                tblmt.ChiTietLoi = dgvDSLoiMayTinh.SelectedRows[0].Cells["ChiTietLoi"].Value.ToString();
                //hiển thị form lỗi máy tính
                FrmLoiMT frmLmt = new FrmLoiMT(tblmt);
                if (frmLmt.ShowDialog() == DialogResult.OK)
                {
                    QLThongBaoLoiMayTinh.Update(frmLmt.tblmt);
                    LoadDsLoiMayTinh();
                    Generic.SelectDataGridviewRowTheoMa(dgvDSLoiMayTinh, "MaLoiMT", frmLmt.tblmt.MaLoiMT);
                }
            }
        }
	}
}
